<?php
Class Transferencia{


	public function importar(){

		$adapter = new Zend_File_Transfer_Adapter_Http();
		$adapter->setDestination(APPLICATION_PATH."/tmp/");
			
		if (!$adapter->receive()) {
			$messages = $adapter->getMessages();
			echo implode("\n", $messages);
		}

		$objReader = PHPExcel_IOFactory::createReader('Excel2007');
		$objReader->setReadDataOnly(true);
		$objPHPExcel = $objReader->load($adapter->getFileName());
		$objWorksheet = $objPHPExcel->getActiveSheet();
		$highestRow = $objWorksheet->getHighestRow();
		$highestColumn = $objWorksheet->getHighestColumn();
		$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);

		$impressao = new Impressao(array());

		$dados = array();

		for ($row = 2; $row <= $highestRow; ++$row) {
			for ($col = 0; $col <= $highestColumnIndex; ++$col) {
				$objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
					
				switch ($col) {
					case 0: $dados[$row]['NOME'] = $impressao->removerAcento($objWorksheet->getCellByColumnAndRow($col, $row)->getValue());
					break;
					case 1: $dados[$row]['NR_IDENT'] = $objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
					break;
					case 2: $dados[$row]['DATA_NASC'] = PHPExcel_Style_NumberFormat::toFormattedString($objWorksheet->getCellByColumnAndRow($col, $row)->getValue(),'YYYY-MM-DD');
					break;
					case 3: $dados[$row]['TELEFONE'] = $objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
					break;
					case 4: $dados[$row]['CELULAR'] = $impressao->removerAcento($objWorksheet->getCellByColumnAndRow($col, $row)->getValue());
					break;
					case 5: $dados[$row]['EMAIL'] = $impressao->removerAcento($objWorksheet->getCellByColumnAndRow($col, $row)->getValue());
					break;
					case 6: $dados[$row]['BAIRRO'] = $impressao->removerAcento($objWorksheet->getCellByColumnAndRow($col, $row)->getValue());
					break;
					case 7: $dados[$row]['CIDADE'] = $impressao->removerAcento($objWorksheet->getCellByColumnAndRow($col, $row)->getValue());
					break;
					case 8: $dados[$row]['CEP'] = $objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
					break;
					case 9: $dados[$row]['ENDERECO'] = $impressao->removerAcento($objWorksheet->getCellByColumnAndRow($col, $row)->getValue());
					break;
					default: ;
					break;
				}

			}
		}

		$tPessoa = new DbTable_Pessoa();
		$pessoasJaExistente = array();
		$contadorCadastrados = 0;

		foreach ($dados as $pessoa) {

			$existePessoa = $tPessoa->fetchRow($tPessoa->select()
			->where('NOME = ?', $pessoa['NOME']));
			if (empty($existePessoa)){
				$pessoaParaCadastrar =$tPessoa->createRow($pessoa);
				$pessoaParaCadastrar->save();
				$contadorCadastrados++;
			}else
			array_push($pessoasJaExistente, $pessoa);
		}
		$string = new String();
		$string->removerAcentoBanco();
		return array("Existentes" 			=>$pessoasJaExistente,
					 "ContadorCadastrados"  =>$contadorCadastrados);
	}

	public function exportar($params){

		$consulta = new Consulta($params);
		$pessoas = $consulta->gerarLista();
		$string = new String();


		foreach ($pessoas as $pessoa) {
			
			$pessoa->BAIRRO = $string->removerAcento($pessoa->BAIRRO);
			$pessoa->NOME = $string->removerAcento($pessoa->NOME);
			$pessoa->CIDADE = $string->removerAcento($pessoa->CIDADE);
			$pessoa->ENDERECO= $string->removerAcento($pessoa->ENDERECO);
			$pessoa->DATA_NASC = $string->formatarData($pessoa->DATA_NASC);
			$pessoa->BAIRRO = ucwords(strtolower($pessoa->BAIRRO));
			$pessoa->ENDERECO = ucwords(strtolower($pessoa->ENDERECO));
			$pessoa->NOME = ucwords(strtolower($pessoa->NOME));
			$pessoa->CIDADE = ucwords(strtolower($pessoa->CIDADE));
			$pessoa->NOME = $string->abreviar(36,$pessoa->NOME);
			$pessoa->NOME =  ucwords(strtolower($pessoa->NOME));
			$pessoa->CEP = $string->formatar($pessoa->CEP, "cep");	

		}

		$contagem = count($pessoas);
		$colunas = array("NOME",
						 "NR_IDENT",
						 "DATA_NASC",
						 "TELEFONE",
						 "CELULAR",
						 "EMAIL",
						 "BAIRRO",
						 "CIDADE",
						 "CEP",
						 "ENDERECO");


		$linhas = $contagem;
		$colunasContagem = count($colunas);

		$excel = new PHPExcel();
		$excel->setActiveSheetIndex(0);
			
		$excel->getActiveSheet()->SetCellValue('A1', 'NOME');
		$excel->getActiveSheet()->SetCellValue('B1', 'NR_IDENT');
		$excel->getActiveSheet()->SetCellValue('C1', 'DATA_NASC');
		$excel->getActiveSheet()->SetCellValue('D1', 'TELEFONE');
		$excel->getActiveSheet()->SetCellValue('E1', 'CELULAR');
		$excel->getActiveSheet()->SetCellValue('F1', 'EMAIL');
		$excel->getActiveSheet()->SetCellValue('G1', 'BAIRRO');
		$excel->getActiveSheet()->SetCellValue('H1', 'CIDADE');
		$excel->getActiveSheet()->SetCellValue('I1', 'CEP');
		$excel->getActiveSheet()->SetCellValue('J1', 'ENDERECO');

		$row = 2;

		foreach ($pessoas as $pessoa) {

			$excel->getActiveSheet()->SetCellValue('A'.$row, $pessoa->NOME);
			$excel->getActiveSheet()->SetCellValue('B'.$row, $pessoa->NR_IDENT);
			$excel->getActiveSheet()->SetCellValue('C'.$row, $pessoa->DATA_NASC);
			$excel->getActiveSheet()->SetCellValue('D'.$row, $pessoa->TELEFONE);
			$excel->getActiveSheet()->SetCellValue('E'.$row, $pessoa->CELULAR);
			$excel->getActiveSheet()->SetCellValue('F'.$row, $pessoa->EMAIL);
			$excel->getActiveSheet()->SetCellValue('G'.$row, $pessoa->BAIRRO);
			$excel->getActiveSheet()->SetCellValue('H'.$row, $pessoa->CIDADE);
			$excel->getActiveSheet()->SetCellValue('I'.$row, $pessoa->CEP);
			$excel->getActiveSheet()->SetCellValue('J'.$row, $pessoa->ENDERECO);
			$row++;
		}

		$excel->getProperties()->setCreator("Danielle");
		$excel->getProperties()->setLastModifiedBy("Danielle");
		$excel->getProperties()->setTitle("Office 2007 XLSX Test Document");
		$excel->getProperties()->setSubject("Office 2007 XLSX Test Document");
		$excel->getProperties()->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.");

		$objWriter = new PHPExcel_Writer_Excel2007($excel);
		$objWriter->save(APPLICATION_PATH . '/tmp/Lista.xlsx');

		$download = new ManipuladorArquivo();
		$download->downloadFile(APPLICATION_PATH . '/tmp/Lista.xlsx');

	}
}